package com.xbongbong.saas.service;

import com.xbongbong.paas.domain.entity.ext.PaasFormDataEntityExt;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.applist.pojo.vo.ListAppVO;
import com.xbongbong.pro.common.pojo.CheckRepeatToolPojo;
import com.xbongbong.pro.common.pojo.dto.CheckRepeatDTO;
import com.xbongbong.pro.common.pojo.dto.CheckRepeatToolDTO;
import com.xbongbong.pro.common.pojo.dto.CustomerCheckRepeatDTO;
import com.xbongbong.pro.common.pojo.dto.MobileCheckRepeatToolDTO;
import com.xbongbong.pro.common.pojo.dto.SeniorCheckRepeatToolDTO;
import com.xbongbong.pro.common.pojo.vo.CheckRepeatToolVO;
import com.xbongbong.pro.common.pojo.vo.CheckRepeatVO;
import com.xbongbong.pro.common.pojo.vo.ClueCheckRepeatVO;
import com.xbongbong.pro.common.pojo.vo.CustomerCheckRepeatVO;

import java.util.List;
import java.util.Map;

/**
 * @author feng.zheng
 * @version v1.0
 * @date 2019/1/31 16:00
 * @since v1.0
 */

public interface CommonService {

    /**
     * 公用查重方法(phone,customerName,contractName,finishedProductVersion)
     *
     * @param checkRepeatDTO 查重入参
     * @author feng.zheng
     * @return com.xbongbong.pro.common.pojo.vo.CheckRepeatVO
     * @throws XbbException 业务异常
     * @date 2019/1/31 16:02
     */
    CheckRepeatVO checkRepeat(CheckRepeatDTO checkRepeatDTO) throws XbbException;

    /**
     * 客户查重
     * @param customerCheckRepeatDTO
     * @return
     * @throws XbbException
     */
    CustomerCheckRepeatVO customerCheckRepeat(CustomerCheckRepeatDTO customerCheckRepeatDTO) throws XbbException;

    ClueCheckRepeatVO clueCheckRepeat(CustomerCheckRepeatDTO customerCheckRepeatDTO) throws XbbException;

    /**
     * 客户查重获取客户位置
     * @param entity
     * @return
     */
    String getCustomerPostion(PaasFormDataEntityExt entity);

    List<Long> getCustomerIdInGroup(CustomerCheckRepeatDTO customerCheckRepeatDTO, List<Long> customerIdIn, Map<Long,Long> customerFormMap) throws XbbException;

}
